若有定义语句:int a[2][3],*p[3]; ,则以下语句中正确的是
来源:百度知道 编辑:UC知道 时间:2024/05/17 19:45:45
A)p=a; b)p[0]=a; C) p[0]=&a[1][2]; D)p[1]=&a;
应该选C。
p是一个指针数组,它有四个元素,每个都是一个指向int型的指针。
a是一个二维数组,它的每个元素都是int型的。
A的错误是因为p是常量(数组名都是指针常量),不可以被赋值。而且p和a的类型也不一致。
BCD都是对p的元素赋值,这是可以的,等号右边应当是一个int型数据的指针(即地址)。C选项中a[1][2]是a的一个元素,是一个int型值,&取了它的地址,所以是正确的。
int* p[3]是定义了一个大小为3的数组指针,也就是定义了三个int型的指针。
p代表指针数组的首地址,相当一个二维指针。
p[0],p[1],p[2]代表一个int型指针
C是对的
应该选b
b
若有定义:int a[4][10];
int *a=0,*b=0; 定义语句对吗
定义int a[2][3]之后
定义int a[2][3],*p[3];那么语句p=a和p[0]=a都错在哪?
设有定义:int a,*pa=&a;以下scanf语句中能正确为变量a读入数据的是:
若定义int a[ ][3]={1,2,3,4,5,6,7};第一维大小
若有说明:int n=2,*p=&n,*q=p;则以下非法的赋值语句是 a) *p=q; b) p=n;
若定义Int a[5],试说明引用a,a[0]和&a[1]的含义?
20.设有定义:int a,*pa=&a;以下scanf语句中能正确为变量a读入数据的是 × 正确答案为A
若有定义:int *p[4]; 则标识符p【 】.